package cn.tpshion.config.service;

import cn.tpshion.config.domain.entity.ConfigInfo;
import cn.tpshion.config.domain.entity.ConfigNameInfo;

import java.util.List;

public interface ConfigService {

    /**
     * 获取所有配置域配置
     * @return
     */
    List<ConfigInfo> getAllConfig();

    /**
     * 根据配置域获取配置列表
     * @return
     */
    List<ConfigInfo> getConfigByName(String name);

    /**
     * 查询某项配置
     * @param name 配置域
     * @param key 配置名称
     * @return
     */
    List<ConfigInfo> getConfigByKey(String name, String key);

    /**
     * 修改配置
     * @param name 配置域
     * @param key 配置项
     * @param value 配置值
     * @return
     */
    ConfigInfo updateConfig(String name, String key, String value);

    /**
     * 删除配置
     * @param name 配置域
     * @param key 配置项
     */
    void deleteConfig(String name, String key);

    /**
     * 添加配置
     * @param name 配置域
     * @param key 配置项
     * @param value 配置值
     * @return
     */
    ConfigInfo addConfig(String name, String key, String value);

    /**
     * 查询所有配置域信息
     * @return
     */
    List<ConfigNameInfo> getAllConfigName();

    /**
     * 添加配置域
     * @param name
     * @param desc
     */
    void addName(String name, String desc);

    /**
     * 模糊查询所有配置
     * @param name
     * @param key
     * @return
     */
    List<ConfigInfo> queryConfig(String name, String key);
}
